/**
 * Project Untitled
 */


#ifndef _CLIENT_H
#define _CLIENT_H
#include "Connection.h"
#include "PacketQueue.h"
#include "Handle.h"
#include <atomic>
#include <iostream>
class Client {
private:
    std::shared_ptr<Connection> connection;
    boost::asio::io_context io_context;
    SystemHandle handle;
    std::atomic<std::shared_ptr<PacketQueue>> msg_queue;
    uint64_t cur_session_id;
public:
    void tryGetConnection(boost::asio::io_context& io_context, const std::string& host_name, boost::asio::ip::port_type port);
};

#endif //_CLIENT_H